/********************************************************/
/*	Copyright (C) 2016 Gong Li Bin		 	*/
/*	Project:	GoLib-1.0.0			*/
/*	Author:		gong_libin			*/
/*	Date:		2016_01_01			*/
/*	File:		GoPriTest.go			*/
/********************************************************/

package main

import (
	. "GoGlb"
	P "GoPro"
)

func main() {
	b := make([]byte, GO_KBYTES2)
	k := []P.GoKlv {
		{Key: 11, Lng: 6, Val: []byte("aaaaaa")},
		{Key: 22, Lng: 6, Val: []byte("bbbbbb")},
		{Key: 33, Lng: 6, Val: []byte("cccccc")},
		{Key: 44, Lng: 6, Val: []byte("dddddd")},
		{Key: 55, Lng: 6, Val: []byte("eeeeee")},
		{Key: 66, Lng: 6, Val: []byte("ffffff")},
	}
	p := &P.GoPri {
		Flag: 0xe8,
		Vers: P.GO_PR_1,
		Prot: P.GO_PR_DATA,
		Wide: P.GO_PR_N,
		Resp: P.GO_PR_N,
		Expa: P.GO_PR_N,
		Type: P.GO_PR_1,
		Verb: P.GO_PR_1,
		Attr: P.GO_PR_1,
		Rest: P.GO_PR_SUCC,
		Totl: int16(len(k)),
		Leng: P.GoKlvOutput(b, k),
		ExHd: nil,
		Body: b,
	}
	h, l := p.GoPriCreate()
	GoPrint("Encode:\n")
	p.GoPriDisplay()
	P.GoKlvDisplay(k)

	GoPrtln()
	GoPrtHx(0, l, h)

	p.GoPriReset()
	p.GoPriParse(h)
	s := P.GoKlvInit(p.Totl)
	P.GoKlvInput(p.Body, s)
	GoPrint("\nDecode:\n")
	p.GoPriDisplay()
	P.GoKlvDisplay(s)
}
